/**
* Copyright (C) 2013-2015
*
* @file   S_2_Lock_doAction.c
*
* @remark
*
*/

#include "S_2_Lock_doAction.h"
#include "S_2_Lock_doEvent.h"
#include "iid.h"

#include "app_main.h"
//#include "lock_operation.h"
#include "data_uart.h"

#define UART_LOG_ENABLE     1
/**
 * 将Action调用转换为强类型的函数调用。
 */
static void A_2_1_Ble_Unlock_doInvoke(action_operation_t *o)
{
    // 检查输入参数个数
#if 0
    if (o->in->size != 0)
    {
        o->code = OPERATION_INVALID;
        return;
    }
#endif
    // 输出结果个数
    o->out->size = 0;

    // TODO: 调用真正的执行函数
//    process_door_blot(0, 0, 0);
//    process_door_blot(0, 1, 1);
//    E_2_1020_Lock_Event_doEvent(IID_2_1_3_NotTell, IID_2_2_1_Mobile_Phone, IID_2_3_2_Unlock, 0xffff);
    
    o->code = OPERATION_OK;
    
#if UART_LOG_ENABLE
    data_uart_debug("ble unlock\r\n");
#endif
}

/**
 * 将Action调用转换为强类型的函数调用。
 */
static void A_2_2_Ble_Awake_Dev_doInvoke(action_operation_t *o)
{
    // 检查输入参数个数
#if 0
    if (o->in->size != 0)
    {
        o->code = OPERATION_INVALID;
        return;
    }
#endif
    // 输出结果个数
    o->out->size = 0;

    // TODO: 调用真正的执行函数
    o->code = OPERATION_OK;
    
#if UART_LOG_ENABLE
    data_uart_debug("ble awake\r\n");
#endif
}

void S_2_Lock_doAction(action_operation_t *o)
{
    switch (o->aiid)
    {
        case IID_2_1_Ble_Unlock:
            A_2_1_Ble_Unlock_doInvoke(o);
            break;

        case IID_2_2_Ble_Awake_Dev:
            A_2_2_Ble_Awake_Dev_doInvoke(o);
            break;
        
        default:
            o->code = OPERATION_INVALID;
            break;
    }
}
